This invention relates to digital media data players and more particularly to systems, methods, and computer readable media that can be used to dynamically generate random playlists while playing media.
Electronic devices, such as digital media players (e.g., music players and video players), and hybrid devices that combine other functionalities with media playing are used by people every day. These devices are often designed to be able to organize music or other media files into playlists. Various bits of data, such as metadata tags associated with each file, can be used to create playlists.
Metadata tags are one or more bits of data that can be associated with or assigned to a media file. For example, a media file's title and author can be stored as metadata tags, where the media file can be a song, movie, or other media that can be played back and/or viewed by the user. Metadata tags can be assigned by a third party and/or by a user.
For example, a media player, such as an iPod™ available by Apple Inc., of Cupertino, Calif., can allow a user to associate a metadata tag, such as star ratings, to one or more songs in the user's music library. The star ratings can range from one star (lowest rating) to five stars (highest rating). In some embodiments, the media player can automatically create a “My Top Rated” playlist that includes the highest rated songs. In addition, when the user associates a five stars rating to a new song, the media player can automatically add the new song to the “My Top Rated” playlist.
Over the years, many media devices (including CD players and iPods™) have been configured to provide the user with a shuffle option. The shuffle option can cause the media device to create a randomized playlist. When the shuffle option is invoked while the media device is playing a media file in a playlist, the media file would stop playing, and the order of media files in the playlist would be re-organized without regard to the media file that was playing when the shuffle option was selected. In other words, every randomization of a playlist first stops playing the media file, and then begins playing a completely new media file. This can be frustrating when users want to randomize upcoming media in a playlist without stopping the playback of the media file the user is currently listening to and/or watching.
Furthermore, another characteristic of current randomization methods is that once the user randomizes the playlist, it is impossible for the playlist to be detangled back to its original state without stopping the play of the current media file. This “detangling” process is sometimes referred to herein as “unshuffling.”